/**
 *  重要提示！！！
 *  由于guide需要获取get接口信息，需要加入加签方法，所以单独提出来走webpack编译
 *  无接口请求的情况不需要走webpack，直接静态引入js，文件名不要取guide.js
 */
import $ from 'jquery';
import ClipboardJS from '../../../resource/js/clipboard.min';
import { nameConfig } from '@theme/vm';
import { Base64 } from 'js-base64';
import { isIOS, isAndroid, getEnTitleName } from '@/common/js/common';

const SITE_NAME = process.env.SITE_NAME || '';
const imgPath = SITE_NAME + '_appdown';
import '../style/guide.scss';

$(function () {
  /**
   * 判断浏览器类型
   */
  function browser() {
    const u = navigator.userAgent;

    // 判断是否为QQ浏览器
    if (u.indexOf('QQBrowser') >= 0) {
      return 'QQ';
    }
    // 判断是否为UC浏览器
    if (u.indexOf('UCBrowser') >= 0) {
      return 'UC';
    }
    if (u.indexOf('MSIE') >= 0) {
      return 'IE';
    }
    // 判断是否为Firefox浏览器
    if (u.indexOf('Firefox') >= 0) {
      return 'Firefox';
    }
    // 判断是否为Chrome浏览器
    if (u.indexOf('Chrome') >= 0) {
      return 'Chrome';
    }
    // 判断是否为Opera浏览器
    if (u.indexOf('Opera') >= 0) {
      return 'Opera';
    }
    // 判断是否为Safari浏览器
    if (u.indexOf('Safari') >= 0) {
      return 'Safari';
    }
    // 判断是否为搜狗浏览器
    if (u.indexOf('Sogou') >= 0) {
      return 'Sogou';
    }
    // 判断是否为搜狗浏览器
    if (u.indexOf('Sogou') >= 0) {
      return 'Sogou';
    }
    // 判断是否为百度浏览器
    if (u.toLocaleLowerCase().indexOf('baidu') >= 0) {
      return 'Baidu';
    }
  }

  const configBrandName =
    getEnTitleName(nameConfig?.brand) + Base64.decode(nameConfig.brandName);
  // 设置标题
  $('#brandTitle').html(`${configBrandName}`);

  interface UrlParam {
    i_code: string;
    r_code: string;
  }
  // 设置h5链接
  function GetUrlParam(): UrlParam {
    const url = decodeURI(window.location.href);
    const thisParam: UrlParam = {
      i_code: '',
      r_code: '',
    };
    // 判断是否存在请求的参数
    if (url.indexOf('?') !== -1) {
      const str = url.split('?')[1];
      // 截取所有请求的参数，以数组方式保存
      const strs = str.split('&');
      for (let i = 0; i < strs.length; i++) {
        // 获取该参数名称，值。其中值以unescape()方法解码，有些参数会加密
        thisParam[strs[i].split('=')[0]] = strs[i].split('=')[1];
      }
    }
    // 返回改参数列表对象
    return thisParam;
  }

  /**
   * Tost提示公共方法
   */
  const Tost = (function () {
    // Tost dom 私有变量
    let tostElem;

    // 创建私有方法生成Tost dmo
    function createElem(text, top, size) {
      // Tost提示样式
      const style: any = {
        position: 'fixed',
        left: '50%',
        top: top + 'px',
        fontSize: size + 'px',
        background: 'rgba(0, 0, 0, 0.9)',
        padding: '8px 20px',
        color: '#ffffff',
        transform: 'translateX(-50%)',
        borderRadius: '2px',
      };

      if (tostElem) {
        document.body.removeChild(tostElem);
      }
      tostElem = document.createElement('section');
      tostElem.className = 'tost';
      tostElem.innerText = text;
      for (const key in style) {
        tostElem.style[key] = style[key];
      }
      document.body.appendChild(tostElem);
    }

    /**
     * Tost提示构造函数
     * @param {any} option
     */
    class TostObject {
      public top: any;
      public fontSize: any;
      public duration: any;
      public info: any;
      public init: any;
      public time: any;
      constructor() {
        this.top = 200;
        this.fontSize = 12;
        this.duration = 3000;
      }
    }

    TostObject.prototype.init = function (option: any = {}) {
      this.top = option.top || 200;
      this.fontSize = option.fontSize || 12;
      this.time = null;
    };

    TostObject.prototype.info = function (text, duration) {
      clearTimeout(this.time);
      createElem(text, this.top, this.fontSize);

      this.time = setTimeout(function () {
        document.body.removeChild(tostElem);
        tostElem = '';
      }, duration || this.duration);
    };

    return new TostObject();
  })();

  // var browserType = browser();

  // 判断手机系统
  if (isAndroid()) {
    $('.browser-img img').attr(
      'src',
      `/resource_images/${imgPath}/guide/android-phone.png`
    );
    $('.tep-text img').attr(
      'src',
      `/resource_images/${imgPath}/guide/android_img.png`
    );
  } else {
    $('.browser-img img').attr(
      'src',
      `/resource_images/${imgPath}/guide/ios-phone.png`
    );
    $('.tep-text img').attr(
      'src',
      `/resource_images/${imgPath}/guide/ios_img.png`
    );
  }

  // 设置浏览器信息
  // $('.browser-tip').text(
  //   '由于' +
  //     browserType +
  //     '浏览器的安全机制，阁下无法直接下载我们的产品，请跟随下列步骤进行下载'
  // );

  const clipboard = new ClipboardJS('.copyLink', {
    text: (trigger) => {
      return location.href;
    },
  });

  clipboard.on('success', function (e) {
    Tost.info('复制成功');
    e.clearSelection(); // 清除选中内容
  });

  clipboard.on('error', function (e) {
    if (isIOS() && browser() === 'UC') {
      Tost.info('复制成功');
    } else {
      Tost.info('复制失败');
    }
  });
});
